﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PSE.Updater.Client.Wrapper
{
    /// <summary>
    /// Classe que valida se o Produto está sendo aberto sem passar pelo processo de atualização
    /// </summary>
    public class ApplicationStartToken
    {
        /// <summary>
        /// Cria a chave de Identificação de Atualização
        /// </summary>
        /// <returns>Chave de Identificação de Atualização</returns>
        public static string Create()
        {
            System.Security.Cryptography.MD5 md5Hash = System.Security.Cryptography.MD5.Create();
            System.Text.ASCIIEncoding ai = new ASCIIEncoding();
            return Convert.ToBase64String(md5Hash.ComputeHash(ai.GetBytes(DateTime.Today.ToString())));
        }

        /// <summary>
        /// Valida a chave de Identificação de Atualização
        /// </summary>
        /// <param name="token">chave de Identificação de Atualização</param>
        /// <returns>TRUE/FALSE caso tenha validado ou não</returns>
        public static bool Validate(string token)
        {
            if (string.IsNullOrEmpty(token))
                return false;
            else
                return token.Equals(Create());
        }
    }
}
